<HTML><HEAD><TITLE>dvar_update(+DVar, +NewDom)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(fd)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>dvar_update(+DVar, +NewDom)</H1>
Change the domain of the domain variable DVar to NewDom and propagate the
changes.


<DL>
<DT><EM>+DVar</EM></DT>
<DD>A domain variable.
</DD>
<DT><EM>+NewDom</EM></DT>
<DD>A finite domain.
</DD>
</DL>
<H2>Description</H2>
   If the size of the domain NewDom is 0, the predicate fails.  If it is 1,
   the domain variable DVar is instantiated to the value in the domain.
   Otherwise, if the size of the new domain is smaller than the size of the
   domain variable's domain, the domain of DVar is replaced by NewDom, the
   appropriate suspension lists in its attribute are passed to the waking
   scheduler and so is the constrained list in the suspend attribute of the
   domain variable.  If the size of the new domain is equal to the old one,
   no updates and no waking is done, i.e.  this predicate does not check an
   explicit equality of both domains.  If the size of the new domain is
   greater than the old one, an error is raised.

<P>

<H3>Fail Conditions</H3>
   None.


<H3>Resatisfiable</H3>
   No.
<H2>See Also</H2>
<A HREF="../../lib/fd/dvar_attribute-2.html">dvar_attribute / 2</A>, <A HREF="../../lib/fd/NN-2.html">:: / 2</A>, <A HREF="../../lib/fd/HNN-2.html">#:: / 2</A>, <A HREF="../../lib/fd/dvar_replace-2.html">dvar_replace / 2</A>
</BODY></HTML>
